Skip to content

fix(deps): exclude scalene on Windows to fix CI build failure#558

Closed
olivermeyer wants to merge 1 commit into
mainfrom
fix/scalene-windows-build
Closed

fix(deps): exclude scalene on Windows to fix CI build failure#558
olivermeyer wants to merge 1 commit into
mainfrom
fix/scalene-windows-build

Conversation

@olivermeyer

Copy link
Copy Markdown
Collaborator

Why?
scalene==2.0.1 ships no pre-built wheel for Python 3.11 on Windows. The source build fails because the build environment inadvertently picks up Python 3.14's typing.py, which uses PEP 695 generic class syntax (class Foo[T]) that Python 3.11–3.13 cannot parse, breaking the Windows CI matrix.

How?
Added a sys_platform != 'win32' environment marker to the scalene dev dependency so uv skips it entirely on Windows. scalene is a local CPU/memory profiler used via make targets and runner/scalene.py; it serves no purpose in Windows CI.

Copilot AI review requested due to automatic review settings April 22, 2026 14:23
scalene>=2.0.1 has no pre-built wheel for Python 3.11 on Windows.
Falling back to the sdist build fails because the build environment
picks up Python 3.14's typing.py, which uses PEP 695 generic class
syntax (class Foo[T]) that older Python interpreters cannot parse.

scalene is a local profiling tool only; it has no purpose in Windows CI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the project’s dev dependency configuration to avoid Windows CI failures caused by attempting to build scalene from source on Windows/Python 3.11.

Changes:

  • Added an environment marker to skip installing scalene on Windows in the dev dependency group.
  • Updated uv.lock to reflect the new platform marker and corresponding wheel selection.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.

File Description
pyproject.toml Adds sys_platform != 'win32' marker for the scalene dev dependency.
uv.lock Applies the same marker in the resolved dev dependency set and prunes Windows wheels accordingly.

Comment thread pyproject.toml
"pytest-xdist[psutil]>=3.8.0,<4",
"ruff>=0.14.8,<1",
"scalene>=2.0.1,<3",
"scalene>=2.0.1,<3; sys_platform != 'win32'", # no Windows wheel for cp311; source build fails due to PEP 695 syntax in Python 3.14 stdlib

Copilot AI Apr 22, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The marker disables scalene on all Windows Python versions, even though wheels exist for cp312+ (as reflected in the lockfile). This also makes the make profile target (python -m scalene ...) unusable on Windows. If the intent is only to avoid the cp311 source-build failure, consider narrowing the environment marker to just the affected Python versions (e.g., Windows + py311) or otherwise document/guard the profiling target for Windows.

Suggested change
"scalene>=2.0.1,<3; sys_platform != 'win32'", # no Windows wheel for cp311; source build fails due to PEP 695 syntax in Python 3.14 stdlib
"scalene>=2.0.1,<3; sys_platform != 'win32' or python_version != '3.11'", # exclude only Windows cp311, where source build fails

Copilot uses AI. Check for mistakes.
@sonarqubecloud

Copy link
Copy Markdown

@codecov

codecov Bot commented Apr 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.
see 7 files with indirect coverage changes

@olivermeyer olivermeyer deleted the fix/scalene-windows-build branch May 7, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants